#include <cstdlib>
extern float const colormap_coolwarm[256][3] = {
	{ 0.22980570f, 0.29871797f, 0.75368315f},
	{ 0.23437708f, 0.30554173f, 0.75967953f},
	{ 0.23894846f, 0.31236549f, 0.76567590f},
	{ 0.24351984f, 0.31918926f, 0.77167228f},
	{ 0.24809122f, 0.32601302f, 0.77766865f},
	{ 0.25266260f, 0.33283679f, 0.78366503f},
	{ 0.25723398f, 0.33966055f, 0.78966140f},
	{ 0.26180536f, 0.34648432f, 0.79565778f},
	{ 0.26638147f, 0.35330441f, 0.80163732f},
	{ 0.27110430f, 0.36001066f, 0.80709513f},
	{ 0.27582712f, 0.36671692f, 0.81255294f},
	{ 0.28054995f, 0.37342317f, 0.81801074f},
	{ 0.28527278f, 0.38012942f, 0.82346855f},
	{ 0.28999560f, 0.38683568f, 0.82892636f},
	{ 0.29471843f, 0.39354193f, 0.83438417f},
	{ 0.29944126f, 0.40024818f, 0.83984198f},
	{ 0.30417429f, 0.40694488f, 0.84526273f},
	{ 0.30906032f, 0.41349827f, 0.85012763f},
	{ 0.31394635f, 0.42005166f, 0.85499254f},
	{ 0.31883238f, 0.42660505f, 0.85985745f},
	{ 0.32371842f, 0.43315844f, 0.86472236f},
	{ 0.32860445f, 0.43971183f, 0.86958726f},
	{ 0.33349048f, 0.44626522f, 0.87445217f},
	{ 0.33837651f, 0.45281861f, 0.87931708f},
	{ 0.34327752f, 0.45935363f, 0.88412192f},
	{ 0.34832334f, 0.46571115f, 0.88834616f},
	{ 0.35336916f, 0.47206866f, 0.89257040f},
	{ 0.35841498f, 0.47842617f, 0.89679465f},
	{ 0.36346080f, 0.48478368f, 0.90101889f},
	{ 0.36850661f, 0.49114119f, 0.90524313f},
	{ 0.37355243f, 0.49749871f, 0.90946737f},
	{ 0.37859825f, 0.50385622f, 0.91369161f},
	{ 0.38366207f, 0.51018342f, 0.91783067f},
	{ 0.38885187f, 0.51629844f, 0.92137348f},
	{ 0.39404168f, 0.52241345f, 0.92491629f},
	{ 0.39923148f, 0.52852847f, 0.92845910f},
	{ 0.40442129f, 0.53464349f, 0.93200191f},
	{ 0.40961110f, 0.54075851f, 0.93554472f},
	{ 0.41480090f, 0.54687353f, 0.93908753f},
	{ 0.41999071f, 0.55298855f, 0.94263034f},
	{ 0.42519897f, 0.55905818f, 0.94606146f},
	{ 0.43050689f, 0.56488274f, 0.94888942f},
	{ 0.43581481f, 0.57070730f, 0.95171738f},
	{ 0.44112272f, 0.57653186f, 0.95454534f},
	{ 0.44643064f, 0.58235643f, 0.95737331f},
	{ 0.45173856f, 0.58818099f, 0.96020127f},
	{ 0.45704648f, 0.59400555f, 0.96302923f},
	{ 0.46235440f, 0.59983011f, 0.96585719f},
	{ 0.46767809f, 0.60559123f, 0.96854628f},
	{ 0.47307017f, 0.61107744f, 0.97063359f},
	{ 0.47846225f, 0.61656364f, 0.97272090f},
	{ 0.48385433f, 0.62204985f, 0.97480820f},
	{ 0.48924641f, 0.62753606f, 0.97689551f},
	{ 0.49463849f, 0.63302226f, 0.97898282f},
	{ 0.50003056f, 0.63850847f, 0.98107012f},
	{ 0.50542264f, 0.64399467f, 0.98315743f},
	{ 0.51082432f, 0.64939661f, 0.98507878f},
	{ 0.51626030f, 0.65449761f, 0.98640740f},
	{ 0.52169628f, 0.65959861f, 0.98773602f},
	{ 0.52713226f, 0.66469960f, 0.98906465f},
	{ 0.53256824f, 0.66980060f, 0.99039327f},
	{ 0.53800422f, 0.67490159f, 0.99172189f},
	{ 0.54344019f, 0.68000259f, 0.99305052f},
	{ 0.54887617f, 0.68510359f, 0.99437914f},
	{ 0.55431187f, 0.69009701f, 0.99551555f},
	{ 0.55974673f, 0.69476773f, 0.99607531f},
	{ 0.56518158f, 0.69943844f, 0.99663507f},
	{ 0.57061644f, 0.70410916f, 0.99719483f},
	{ 0.57605129f, 0.70877988f, 0.99775459f},
	{ 0.58148615f, 0.71345060f, 0.99831435f},
	{ 0.58692100f, 0.71812131f, 0.99887411f},
	{ 0.59235586f, 0.72279203f, 0.99943387f},
	{ 0.59777678f, 0.72732972f, 0.99977673f},
	{ 0.60316207f, 0.73152748f, 0.99956528f},
	{ 0.60854736f, 0.73572523f, 0.99935383f},
	{ 0.61393265f, 0.73992298f, 0.99914237f},
	{ 0.61931795f, 0.74412073f, 0.99893092f},
	{ 0.62470324f, 0.74831849f, 0.99871947f},
	{ 0.63008853f, 0.75251624f, 0.99850801f},
	{ 0.63547382f, 0.75671399f, 0.99829656f},
	{ 0.64082778f, 0.76075151f, 0.99784577f},
	{ 0.64611281f, 0.76443650f, 0.99686846f},
	{ 0.65139784f, 0.76812149f, 0.99589115f},
	{ 0.65668287f, 0.77180648f, 0.99491384f},
	{ 0.66196790f, 0.77549147f, 0.99393653f},
	{ 0.66725292f, 0.77917646f, 0.99295921f},
	{ 0.67253795f, 0.78286145f, 0.99198190f},
	{ 0.67782298f, 0.78654644f, 0.99100459f},
	{ 0.68305568f, 0.79004263f, 0.98976843f},
	{ 0.68818848f, 0.79317838f, 0.98803810f},
	{ 0.69332128f, 0.79631413f, 0.98630778f},
	{ 0.69845409f, 0.79944988f, 0.98457746f},
	{ 0.70358689f, 0.80258564f, 0.98284713f},
	{ 0.70871969f, 0.80572139f, 0.98111681f},
	{ 0.71385249f, 0.80885714f, 0.97938649f},
	{ 0.71898529f, 0.81199289f, 0.97765616f},
	{ 0.72404137f, 0.81491039f, 0.97565097f},
	{ 0.72896958f, 0.81746414f, 0.97318767f},
	{ 0.73389779f, 0.82001788f, 0.97072437f},
	{ 0.73882599f, 0.82257162f, 0.96826106f},
	{ 0.74375420f, 0.82512536f, 0.96579776f},
	{ 0.74868241f, 0.82767911f, 0.96333446f},
	{ 0.75361062f, 0.83023285f, 0.96087116f},
	{ 0.75853883f, 0.83278659f, 0.95840785f},
	{ 0.76336278f, 0.83509222f, 0.95565768f},
	{ 0.76803436f, 0.83703522f, 0.95248822f},
	{ 0.77270595f, 0.83897822f, 0.94931876f},
	{ 0.77737753f, 0.84092121f, 0.94614930f},
	{ 0.78204912f, 0.84286421f, 0.94297984f},
	{ 0.78672070f, 0.84480721f, 0.93981038f},
	{ 0.79139229f, 0.84675021f, 0.93664093f},
	{ 0.79606387f, 0.84869321f, 0.93347147f},
	{ 0.80060085f, 0.85035832f, 0.93000756f},
	{ 0.80496476f, 0.85166616f, 0.92616507f},
	{ 0.80932867f, 0.85297400f, 0.92232259f},
	{ 0.81369258f, 0.85428184f, 0.91848010f},
	{ 0.81805649f, 0.85558968f, 0.91463762f},
	{ 0.82242040f, 0.85689752f, 0.91079513f},
	{ 0.82678432f, 0.85820536f, 0.90695264f},
	{ 0.83114823f, 0.85951319f, 0.90311016f},
	{ 0.83534471f, 0.86051400f, 0.89897041f},
	{ 0.83935144f, 0.86116683f, 0.89449376f},
	{ 0.84335817f, 0.86181965f, 0.89001712f},
	{ 0.84736491f, 0.86247248f, 0.88554047f},
	{ 0.85137164f, 0.86312531f, 0.88106382f},
	{ 0.85537837f, 0.86377814f, 0.87658718f},
	{ 0.85938510f, 0.86443097f, 0.87211053f},
	{ 0.86339183f, 0.86508380f, 0.86763388f},
	{ 0.86742764f, 0.86437660f, 0.86260246f},
	{ 0.87149251f, 0.86230938f, 0.85701626f},
	{ 0.87555739f, 0.86024216f, 0.85143007f},
	{ 0.87962226f, 0.85817494f, 0.84584387f},
	{ 0.88368714f, 0.85610772f, 0.84025767f},
	{ 0.88775202f, 0.85404050f, 0.83467147f},
	{ 0.89181689f, 0.85197328f, 0.82908527f},
	{ 0.89588177f, 0.84990606f, 0.82349908f},
	{ 0.89954321f, 0.84750024f, 0.81778907f},
	{ 0.90284867f, 0.84479565f, 0.81196983f},
	{ 0.90615413f, 0.84209107f, 0.80615059f},
	{ 0.90945960f, 0.83938648f, 0.80033135f},
	{ 0.91276506f, 0.83668189f, 0.79451211f},
	{ 0.91607053f, 0.83397731f, 0.78869287f},
	{ 0.91937599f, 0.83127272f, 0.78287363f},
	{ 0.92268145f, 0.82856814f, 0.77705439f},
	{ 0.92556342f, 0.82551730f, 0.77113631f},
	{ 0.92811601f, 0.82219715f, 0.76514135f},
	{ 0.93066860f, 0.81887700f, 0.75914639f},
	{ 0.93322118f, 0.81555685f, 0.75315143f},
	{ 0.93577377f, 0.81223670f, 0.74715647f},
	{ 0.93832636f, 0.80891655f, 0.74116152f},
	{ 0.94087894f, 0.80559640f, 0.73516656f},
	{ 0.94343153f, 0.80227625f, 0.72917160f},
	{ 0.94554030f, 0.79860574f, 0.72310542f},
	{ 0.94734540f, 0.79469550f, 0.71699051f},
	{ 0.94915051f, 0.79078527f, 0.71087559f},
	{ 0.95095561f, 0.78687503f, 0.70476068f},
	{ 0.95276072f, 0.78296480f, 0.69864577f},
	{ 0.95456582f, 0.77905456f, 0.69253086f},
	{ 0.95637093f, 0.77514433f, 0.68641595f},
	{ 0.95817603f, 0.77123409f, 0.68030104f},
	{ 0.95951766f, 0.76697285f, 0.67414472f},
	{ 0.96058120f, 0.76250102f, 0.66796355f},
	{ 0.96164474f, 0.75802918f, 0.66178238f},
	{ 0.96270828f, 0.75355735f, 0.65560121f},
	{ 0.96377182f, 0.74908551f, 0.64942004f},
	{ 0.96483536f, 0.74461367f, 0.64323888f},
	{ 0.96589890f, 0.74014184f, 0.63705771f},
	{ 0.96696244f, 0.73567000f, 0.63087654f},
	{ 0.96754430f, 0.73084972f, 0.62468548f},
	{ 0.96787385f, 0.72584691f, 0.61848923f},
	{ 0.96820340f, 0.72084410f, 0.61229299f},
	{ 0.96853295f, 0.71584129f, 0.60609675f},
	{ 0.96886250f, 0.71083848f, 0.59990050f},
	{ 0.96919205f, 0.70583568f, 0.59370426f},
	{ 0.96952160f, 0.70083287f, 0.58750802f},
	{ 0.96985115f, 0.69583006f, 0.58131177f},
	{ 0.96968298f, 0.69048393f, 0.57513836f},
	{ 0.96928857f, 0.68498175f, 0.56897533f},
	{ 0.96889416f, 0.67947956f, 0.56281229f},
	{ 0.96849975f, 0.67397738f, 0.55664926f},
	{ 0.96810534f, 0.66847520f, 0.55048622f},
	{ 0.96771093f, 0.66297301f, 0.54432319f},
	{ 0.96731652f, 0.65747083f, 0.53816015f},
	{ 0.96692210f, 0.65196865f, 0.53199712f},
	{ 0.96601672f, 0.64612974f, 0.52589035f},
	{ 0.96491139f, 0.64015908f, 0.51980560f},
	{ 0.96380606f, 0.63418841f, 0.51372085f},
	{ 0.96270072f, 0.62821775f, 0.50763610f},
	{ 0.96159539f, 0.62224709f, 0.50155135f},
	{ 0.96049006f, 0.61627642f, 0.49546660f},
	{ 0.95938473f, 0.61030576f, 0.48938185f},
	{ 0.95827940f, 0.60433510f, 0.48329710f},
	{ 0.95665321f, 0.59803382f, 0.47730229f},
	{ 0.95485341f, 0.59162235f, 0.47133746f},
	{ 0.95305360f, 0.58521087f, 0.46537263f},
	{ 0.95125379f, 0.57879939f, 0.45940781f},
	{ 0.94945399f, 0.57238791f, 0.45344298f},
	{ 0.94765418f, 0.56597643f, 0.44747815f},
	{ 0.94585438f, 0.55956496f, 0.44151332f},
	{ 0.94405457f, 0.55315348f, 0.43554849f},
	{ 0.94172793f, 0.54641348f, 0.42970707f},
	{ 0.93925377f, 0.53958149f, 0.42390020f},
	{ 0.93677961f, 0.53274950f, 0.41809334f},
	{ 0.93430545f, 0.52591751f, 0.41228647f},
	{ 0.93183130f, 0.51908552f, 0.40647961f},
	{ 0.92935714f, 0.51225353f, 0.40067274f},
	{ 0.92688298f, 0.50542155f, 0.39486588f},
	{ 0.92440882f, 0.49858956f, 0.38905901f},
	{ 0.92140622f, 0.49142042f, 0.38340844f},
	{ 0.91828167f, 0.48417347f, 0.37779393f},
	{ 0.91515712f, 0.47692653f, 0.37217941f},
	{ 0.91203258f, 0.46967958f, 0.36656490f},
	{ 0.90890803f, 0.46243264f, 0.36095039f},
	{ 0.90578348f, 0.45518569f, 0.35533588f},
	{ 0.90265893f, 0.44793875f, 0.34972137f},
	{ 0.89953438f, 0.44069180f, 0.34410686f},
	{ 0.89588459f, 0.43307456f, 0.33868063f},
	{ 0.89213754f, 0.42538874f, 0.33328927f},
	{ 0.88839049f, 0.41770292f, 0.32789791f},
	{ 0.88464344f, 0.41001710f, 0.32250655f},
	{ 0.88089639f, 0.40233128f, 0.31711519f},
	{ 0.87714933f, 0.39464546f, 0.31172383f},
	{ 0.87340228f, 0.38695964f, 0.30633246f},
	{ 0.86965523f, 0.37927382f, 0.30094110f},
	{ 0.86539133f, 0.37112767f, 0.29576896f},
	{ 0.86105360f, 0.36291576f, 0.29062813f},
	{ 0.85671587f, 0.35470386f, 0.28548730f},
	{ 0.85237814f, 0.34649195f, 0.28034647f},
	{ 0.84804040f, 0.33828004f, 0.27520564f},
	{ 0.84370267f, 0.33006813f, 0.27006481f},
	{ 0.83936494f, 0.32185622f, 0.26492398f},
	{ 0.83502720f, 0.31364431f, 0.25978315f},
	{ 0.83018652f, 0.30473276f, 0.25489143f},
	{ 0.82529381f, 0.29574884f, 0.25002547f},
	{ 0.82040110f, 0.28676491f, 0.24515952f},
	{ 0.81550839f, 0.27778099f, 0.24029357f},
	{ 0.81061567f, 0.26879706f, 0.23542761f},
	{ 0.80572296f, 0.25981314f, 0.23056166f},
	{ 0.80083025f, 0.25082921f, 0.22569570f},
	{ 0.79593754f, 0.24184529f, 0.22082975f},
	{ 0.79056153f, 0.23139700f, 0.21624204f},
	{ 0.78515330f, 0.22085109f, 0.21167288f},
	{ 0.77974508f, 0.21030518f, 0.20710372f},
	{ 0.77433685f, 0.19975927f, 0.20253455f},
	{ 0.76892862f, 0.18921336f, 0.19796539f},
	{ 0.76352040f, 0.17866745f, 0.19339623f},
	{ 0.75811217f, 0.16812154f, 0.18882707f},
	{ 0.75270394f, 0.15757563f, 0.18425791f},
	{ 0.74683801f, 0.14002102f, 0.17999610f},
	{ 0.74095732f, 0.12224033f, 0.17574420f},
	{ 0.73507663f, 0.10445963f, 0.17149230f},
	{ 0.72919593f, 0.08667894f, 0.16724040f},
	{ 0.72331524f, 0.06889824f, 0.16298851f},
	{ 0.71743454f, 0.05111755f, 0.15873661f},
	{ 0.71155385f, 0.03333685f, 0.15448471f},
	{ 0.70567316f, 0.01555616f, 0.15023281f}
};